/****   request.js   ****/
// 导入axios
import axios from 'axios'


//1. 创建新的axios实例，
axios.defaults.withCredentials = true
const service = axios.create({
   baseURL:"/api",
   //withCredentials:true,
    timeout: 3 * 1000
})
// 2.请求拦截器
service.interceptors.request.use(config => {

  //发请求前做的一些处理，数据转化，配置请求头，设置token,设置loading等，根据需求去添加
   config.headers = {
     'Headers':'*',
    'Access-Control-Allow-Origin':'*',
     'Content-Type':'application/x-www-form-urlencoded' //配置请求头
   }
   //注意使用token的时候需要引入cookie方法或者用本地localStorage等方法，推荐js-cookie
   const token = window.sessionStorage.getItem('token');//这里取token之前，你肯定需要先拿到token,存一下
   if(token){
      // config.params = {'token':token} //如果要求携带在参数中
      config.headers.token= token; //如果要求携带在请求头中
    }
  return config
}, error => {
  Promise.reject(error)
})


// 3.响应拦截器
service.interceptors.response.use(response => {
  //接收到响应数据并成功后的一些共有的处理，关闭loading等

  return response
}, error => {
   /***** 接收到异常响应的处理开始 *****/
  if (error && error.response) {
    // 1.公共错误处理
    // 2.根据响应码具体处理
    switch (error.response.status) {
      case 400:
      console.log('400')
        break;
      case 401:
      console.log('401')
        break;
      case 403:
        console.log('403')
        break;
      case 404:
        console.log('404')
        // window.location.href = "/NotFound"
        break;
      case 405:
        console.log('405')
        break;
      case 408:
        console.log('408')
        break;
      case 500:
        console.log('500')
        break;
      case 501:
        console.log('501')
        break;
      case 502:
        console.log('502')
        break;
      case 503:
        console.log('503')
        break;
      case 504:
        console.log('504')
        break;
      case 505:
        console.log('505')
        break;
      default:
        console.log('deff')
    }
  } else {
    // 超时处理
    if (JSON.stringify(error).includes('timeout')) {
    }
  }

  /***** 处理结束 *****/
  //如果不需要错误处理，以上的处理过程都可省略
  return Promise.resolve(error.response)
})
//4.导入文件
export default service
